{
unsigned long i, p = *ppos;
ssize_t read = -EFAULT;
- void *v;
+ void __iomem *v;
if ((v = ioremap(p, count)) == NULL) {
/*
{
unsigned long p = *ppos;
ssize_t written = -EFAULT;
- void *v;
+ void __iomem *v;
if ((v = ioremap(p, count)) == NULL)
return -EFAULT;
case CDROMMULTISESSION:
DPRINTK("FIXME: support multisession CDs later\n");
for (i = 0; i < sizeof(struct cdrom_multisession); i++)
- if (put_user(0, (char *)(argument + i)))
+ if (put_user(0, (char __user *)(argument + i)))
return -EFAULT;
return 0;
spin_unlock(&port_user_lock);
}
-static ssize_t evtchn_read(struct file *file, char *buf,
+static ssize_t evtchn_read(struct file *file, char __user *buf,
size_t count, loff_t *ppos)
{
int rc;
return rc;
}
-static ssize_t evtchn_write(struct file *file, const char *buf,
+static ssize_t evtchn_write(struct file *file, const char __user *buf,
size_t count, loff_t *ppos)
{
int rc, i;
{
int rc;
struct per_user_data *u = file->private_data;
+ void __user *uarg = (void __user *) arg;
evtchn_op_t op = { 0 };
switch (cmd) {
struct ioctl_evtchn_bind_virq bind;
rc = -EFAULT;
- if (copy_from_user(&bind, (void *)arg, sizeof(bind)))
+ if (copy_from_user(&bind, uarg, sizeof(bind)))
break;
op.cmd = EVTCHNOP_bind_virq;
struct ioctl_evtchn_bind_interdomain bind;
rc = -EFAULT;
- if (copy_from_user(&bind, (void *)arg, sizeof(bind)))
+ if (copy_from_user(&bind, uarg, sizeof(bind)))
break;
op.cmd = EVTCHNOP_bind_interdomain;
struct ioctl_evtchn_bind_unbound_port bind;
rc = -EFAULT;
- if (copy_from_user(&bind, (void *)arg, sizeof(bind)))
+ if (copy_from_user(&bind, uarg, sizeof(bind)))
break;
op.cmd = EVTCHNOP_alloc_unbound;
int ret;
rc = -EFAULT;
- if (copy_from_user(&unbind, (void *)arg, sizeof(unbind)))
+ if (copy_from_user(&unbind, uarg, sizeof(unbind)))
break;
rc = -EINVAL;
struct ioctl_evtchn_notify notify;
rc = -EFAULT;
- if (copy_from_user(¬ify, (void *)arg, sizeof(notify)))
+ if (copy_from_user(¬ify, uarg, sizeof(notify)))
break;
if (notify.port >= NR_EVENT_CHANNELS) {
unsigned int cmd, unsigned long data)
{
int ret = -ENOSYS;
+ void __user *udata = (void __user *) data;
switch (cmd) {
case IOCTL_PRIVCMD_HYPERCALL: {
privcmd_hypercall_t hypercall;
- if (copy_from_user(&hypercall, (void *)data,
- sizeof(hypercall)))
+ if (copy_from_user(&hypercall, udata, sizeof(hypercall)))
return -EFAULT;
#if defined(__i386__)
case IOCTL_PRIVCMD_MMAP: {
#define PRIVCMD_MMAP_SZ 32
privcmd_mmap_t mmapcmd;
- privcmd_mmap_entry_t msg[PRIVCMD_MMAP_SZ], *p;
+ privcmd_mmap_entry_t msg[PRIVCMD_MMAP_SZ];
+ privcmd_mmap_entry_t __user *p;
int i, rc;
- if (copy_from_user(&mmapcmd, (void *)data, sizeof(mmapcmd)))
+ if (copy_from_user(&mmapcmd, udata, sizeof(mmapcmd)))
return -EFAULT;
p = mmapcmd.entry;
mmu_update_t u;
privcmd_mmapbatch_t m;
struct vm_area_struct *vma = NULL;
- unsigned long *p, addr;
- unsigned long mfn;
+ unsigned long __user *p;
+ unsigned long addr, mfn;
uint64_t ptep;
int i;
- if (copy_from_user(&m, (void *)data, sizeof(m))) {
+ if (copy_from_user(&m, udata, sizeof(m))) {
ret = -EFAULT;
goto batch_err;
}
pmd_t *pmd;
unsigned long m2pv, m2p_mfn;
privcmd_m2pmfns_t m;
- unsigned long *p;
+ unsigned long __user *p;
int i;
#if defined (__x86_64__)
ret = -EINVAL;
break;
#endif
- if (copy_from_user(&m, (void *)data, sizeof(m)))
+
+ if (copy_from_user(&m, udata, sizeof(m)))
return -EFAULT;
m2pv = (unsigned long)machine_to_phys_mapping;
* page-fault path will copy the page directory pointers from init_mm.
*/
for (i = 0; i < area->size; i += PAGE_SIZE)
- (void)__get_user(c, (char *)area->addr + i);
+ (void)__get_user(c, (char __user *)area->addr + i);
}
void unlock_vm_area(struct vm_struct *area)
#ifndef __LINUX_PUBLIC_PRIVCMD_H__
#define __LINUX_PUBLIC_PRIVCMD_H__
+#ifndef __user
+#define __user
+#endif
+
typedef struct privcmd_hypercall
{
unsigned long op;
typedef struct privcmd_mmap {
int num;
domid_t dom; /* target domain */
- privcmd_mmap_entry_t *entry;
+ privcmd_mmap_entry_t __user *entry;
} privcmd_mmap_t;
typedef struct privcmd_mmapbatch {
int num; /* number of pages to populate */
domid_t dom; /* target domain */
unsigned long addr; /* virtual address */
- unsigned long *arr; /* array of mfns - top nibble set on err */
+ unsigned long __user *arr; /* array of mfns - top nibble set on err */
} privcmd_mmapbatch_t;
typedef struct privcmd_m2pmfns {
int num; /* max number of mfns to return */
- unsigned long *arr; /* array of mfns */
+ unsigned long __user *arr; /* array of mfns */
} privcmd_m2pmfns_t;
typedef struct privcmd_blkmsg